perm filename NGAK.SAI[CMS,LCS] blob sn#209642 filedate 1976-03-30 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "GACK"
C00005 ENDMK
C⊗;
BEGIN "GACK"
  REQUIRE "DDHDR.SAI[GRA,HPM]" SOURCE_FILE;
  INTEGER N,D,I,J,K,LAST;
  INTEGER ARRAY CH[0:7];
  REAL SIZE;

  OUTSTR("	NUMBER OF DRIPS = ");N←CVD(INCHWL);
  OUTSTR("	DIRECTION (0=FORWARD,1=BACK,2=BOTH) = ");
  D←CVD(INCHWL);IF D<0∨D>2 THEN D←0;
  BEGIN
	REAL ARRAY X[0:N],Y[0:N],SZ[0:N];
	DDINIT;
	SCREEN(0,0,1.,1.);
	RAN(CALL(0,"TIMER"));

	FOR I←0 STEP 1 UNTIL 7 DO CH[I]←SYNMAP(I);
	FOR I←0 STEP 1 UNTIL N DO BEGIN
	  SZ[I]←RAN(0)/5;X[I]←RAN(0);Y[I]←RAN(0);END;

	I←0;
	DO BEGIN
	  IF SZ[I]<SZ[I+1] THEN BEGIN
	    SZ[I]↔SZ[I+1];
	    IF I THEN I←I-2;END;
	  I←I+1;END
	UNTIL I=N;
	
	FOR I←7 STEP -1 UNTIL 0 DO BEGIN
	  LAST←1;SIZE←.5;DRKEN;RECTAN(0,0,1,1);
	  FOR J←0 STEP 1 UNTIL 2↑8-1 DO BEGIN
	    IF ((J LSH -I) LAND 1) THEN LITEN ELSE DRKEN;
	    IF ((J LSH -I) LAND 1)≠LAST THEN BEGIN
	      RECTAN(0,.5-SIZE,1,.5);
	      LAST←1-LAST;END;
	    SIZE←SIZE*0.98;END;
	  FOR K←0 STEP 1 UNTIL N DO BEGIN
	    LAST←1;SIZE←SZ[K];
	    FOR J←0 STEP 1 UNTIL 2↑8-1 DO BEGIN
	      IF D=2 THEN 
	        IF ((J LSH -I) LAND 1)=(K LAND 1) THEN DRKEN ELSE LITEN
	      ELSE IF ((J LSH -I) LAND 1)≠D THEN LITEN ELSE DRKEN;
	      IF ((J LSH -I) LAND 1)≠LAST THEN BEGIN
		ELLIPS(X[K]-SIZE,Y[K]-SIZE,X[K]+SIZE,Y[K]+SIZE);
		LAST←1-LAST;END;
	      SIZE←SIZE*0.98;END;END;
	  GDDCHN(CH[I]);
	  FOR K←1 STEP 1 UNTIL 3 DO DPYUP(CH[I]);END;
END;
END "GACK";